home *** CD-ROM | disk | FTP | other *** search
/ Die Ultimative Software-P…i Collection 1996 & 1997 / Die Ultimative Software-Pakete CD-ROM fur Atari Collection 1996 & 1997.iso / i / internet / software / tuwtcpsr / ip.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-11-04  |  1.6 KB  |  83 lines

  1. #ifndef _INET_IP
  2. #define _INET_IP
  3.  
  4. #ifndef _INET_PKT
  5. #include "pktdrv.h"
  6. #endif
  7.  
  8. #ifndef _INET_CUST
  9. #include "inetcust.h"
  10. #endif
  11.  
  12. #define IP_ICMP    1        /* protocols to serve */
  13. #define IP_GGP    3
  14. #define IP_ST    5
  15. #define IP_TCP    6
  16. #define IP_UDP    17
  17.  
  18. #define MAXIP    10        /* max nr. of protocols to serve   */
  19. #define IP_NBUF    10        /* default number of packetbuffers */
  20.  
  21. #define MAXIPSEG    1500
  22.  
  23. #ifndef INADDR
  24. #define INADDR unsigned long
  25. #endif
  26.  
  27. /* The Internet Header: */
  28. typedef struct 
  29. {
  30.     u_char    vh;                /* version, hdrlen */
  31.     u_char    tos;            /* type of service */
  32.     u_short    length;
  33.     u_short    ident;
  34.     u_short    frag;
  35.     u_char    ttl;
  36.     u_char    protocol;
  37.     u_short    chksum;
  38.     INADDR    src_inaddr;
  39.     INADDR    dst_inaddr;
  40. } IP;
  41.  
  42. typedef struct
  43. {
  44.     ETH        et;
  45.     IP        ip;
  46.     union
  47.     {
  48.         char    opt[40];
  49.         char    data[MAXIPSEG-sizeof(IP)];
  50.     }od;
  51. } IP_PACKET;
  52.  
  53. #define ip_opt    od.opt
  54. #define ip_dat    od.data
  55. #define IPPKTSIZE    ((int)sizeof(PACKET))
  56.  
  57. #define IP_VERSION    4
  58. #define IP_HDR        5
  59. #define IP_TTL        255
  60. #define IP_TOS        0
  61. #define IP_FRAG        0x8000
  62. #define ip_version(ip) (((ip)->vh >> 4) & 0xf)
  63. #define ip_hdrlen(ip)  (((ip)->vh & 0xf) << 2)
  64.  
  65. #define ip_head(pkt) ((IP *)( ((PACKET *)pkt)->pkt_data ))
  66. #define ip_data(pkt) (((char *)ip_head(pkt)) + ip_hdrlen(ip_head(pkt)))
  67.  
  68. int ip_open(int,int (*)(PACKET *,int,INADDR),int (*)(IP *));
  69. int ip_close(int);
  70. int ip_init(void);
  71. int ip_exit(void);
  72. int ip_demux(void);
  73. int ip_dudemux(IP *);
  74. int ip_send(int,PACKET *,int,INADDR);
  75. PACKET *ip_alloc(int,int);
  76. int ip_free(PACKET *);
  77. int ip_requeue(PACKET *);
  78. INADDR    ip_myaddr(void);
  79.  
  80.  
  81.  
  82.  
  83. #endif